﻿<?xml version="1.0" encoding="UTF-8"?>
<GenerateModel xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="generateMetaModel_Module.xsd">
  <PythonExport
    Father="Part2DObjectPy"
    Name="SketchObjectPy"
    Twin="SketchObject"
    TwinPointer="SketchObject"
    Include="Mod/Sketcher/App/SketchObject.h"
    Namespace="Sketcher"
    FatherInclude="Mod/Part/App/Part2DObjectPy.h"
    FatherNamespace="Part">
    <Documentation>
      <Author Licence="LGPL" Name="Juergen Riegel" EMail="FreeCAD@juergen-riegel.net" />
      <UserDocu>Represents a sketch object</UserDocu>
    </Documentation>
    <Methode Name="solve">
      <Documentation>
        <UserDocu>
Solve the sketch and update the geometry.

solve()

    Returns:
        0 in case of success, otherwise the following codes in this order of
        priority:
        -4 if over-constrained,
        -3 if conflicting constraints,
        -5 if malformed constraints
        -1 if solver error,
        -2 if redundant constraints.
        </UserDocu>
      </Documentation>
    </Methode>
    <Methode Name="addGeometry">
      <Documentation>
        <UserDocu>
Add geometric objects to the sketch.

addGeometry(geo:Geometry, isConstruction=False) -> int
    Add a single geometric object to the sketch.

    Args:
        geo: The geometry to add. e.g. a Part.LineSegement
        isConstruction: Whether the added geometry is a "construction geometry".
            Defaults to `False`, i.e. by omitting, a regular geometry is added.

    Returns:
        The zero-based index of the newly added geometry.

addGeometry(geo:List(Geometry), isConstruction=False) -> Tuple(int)
    Add many geometric objects to the sketch.

    Args:
        geo: The geometry to add.
        isConstruction: see above.

    Returns:
        A tuple of zero-based indices of all newly added geometry.
        </UserDocu>
      </Documentation>
    </Methode>
    <Methode Name="delGeometry">
      <Documentation>
        <UserDocu>
Delete a geometric object from the sketch.

delGeometry(geoId:int)

    Args:
        geoId: The zero-based index of the geometry to delete.
            Any internal alignment geometry thereof will be deleted, too.
        </UserDocu>
      </Documentation>
    </Methode>
    <Methode Name="delGeometries">
      <Documentation>
        <UserDocu>
Delete a list of geometric objects from the sketch.

delGeometries(geoIds:List(int))

    Args:
        geoId: A list of zero-based indices of the geometry to delete.
            Any internal alignment geometry thereof will be deleted, too.
        </UserDocu>
      </Documentation>
    </Methode>
    <Methode Name="deleteAllGeometry">
        <Documentation>
            <UserDocu>
Delete all the geometry objects from the sketch, except external geometry.

deleteAllGeometry()
            </UserDocu>
        </Documentation>
    </Methode>
    <Methode Name="deleteAllConstraints">
        <Documentation>
            <UserDocu>
Delete all the constraints from the sketch.

deleteAllConstraints()
            </UserDocu>
        </Documentation>
    </Methode>
    <Methode Name="toggleConstruction">
      <Documentation>
        <UserDocu>
Toggles a geometry between regular and construction.

toggleConstruction(geoId:int)

    Args:
        geoId: The zero-based index of the geometry to toggle.
        </UserDocu>
      </Documentation>
    </Methode>
    <Methode Name="setConstruction">
      <Documentation>
        <UserDocu>
Set construction mode of a geometry.

setConstruction(geoId:int, state:bool)

    Args:
        geoId: The zero-based index of the geometry to configure.
        state: `True` configures the geometry to "construction geometry",
            `False` configures it to regular geometry.
        </UserDocu>
      </Documentation>
    </Methode>
    <Methode Name="getConstruction">
      <Documentation>
        <UserDocu>
Determine whether the given geometry is a "construction geometry".

getConstruction(geoId:int)

    Args:
        geoId: The zero-based index of the geometry to query.

    Returns:
        `True` if the geometry is "construction geometry" and
        `False` if it s a regular geometry.
        </UserDocu>
      </Documentation>
    </Methode>
    <Methode Name="addConstraint">
      <Documentation>
        <UserDocu>
Add constraints to the sketch.

addConstraint(constraint:Constraint) -> int
    Add a single constraint to the sketch and solves it.

    Returns:
        The zero-based index of the newly added constraint.

addConstraint(constraints:List(Constraint)) -> Tuple(int)
    Add many constraints to the sketch without solving.

    Returns:
        A tuple of zero-based indices of all newly added constraints.
        </UserDocu>
      </Documentation>
    </Methode>
    <Methode Name="delConstraint">
      <Documentation>
        <UserDocu>
Delete a constraint from the sketch.

delConstraint(constraintIndex:int)

    Args:
        constraintIndex: The zero-based index of the constraint to delete.
        </UserDocu>
      </Documentation>
    </Methode>
    <Methode Name="renameConstraint">
      <Documentation>
        <UserDocu>
Rename a constraint in the sketch.

renameConstraint(constraintIndex:int, name:str)

    Args:
        constraintIndex: The zero-based index of the constraint to rename.
        name: The new name for the constraint.
            An empty string makes the constraint "unnamed" again.
        </UserDocu>
      </Documentation>
    </Methode>
    <Methode Name="getIndexByName" Const="true">
      <Documentation>
        <UserDocu>
Get the index of a constraint by name.

getIndexByName(name:str)

    Args:
        name: The name for the constraint to look up.
            If there is no such constraint an exception is raised.
        </UserDocu>
      </Documentation>
    </Methode>
    <Methode Name="carbonCopy">
        <Documentation>
            <UserDocu>
Copy another sketch's geometry and constraints into this sketch.

carbonCopy(objName:str, asConstruction=True)

    Args:
        ObjName: The name of the sketch object to copy from.
        asConstruction: Whether to copy the geometry as "construction geometry".
            </UserDocu>
        </Documentation>
    </Methode>
    <Methode Name="addExternal">
      <Documentation>
        <UserDocu>
Add a link to an external geometry.

addExternal(objName:str, subName:str)

    Args:
        objName: The name of the document object to reference.
        subName: The name of the sub-element of the object's shape to link as
            "external geometry".
        </UserDocu>
      </Documentation>
    </Methode>
    <Methode Name="delExternal">
      <Documentation>
        <UserDocu>
Delete an external geometry link from the sketch.

delExternal(extGeoId:int)

    Args:
        extGeoId: The zero-based index of the external geometry to remove.
        </UserDocu>
      </Documentation>
    </Methode>
    <Methode Name="delConstraintOnPoint">
      <Documentation>
        <UserDocu>
Delete coincident constraints associated with a sketch point.

delConstraintOnPoint(vertexId:int)

    Args:
        vertexId: A zero-based index of the shape's vertices.

delConstraintOnPoint(geoId:int, pointPos:int)

    Args:
        geoId: The zero-based index of the geometry that contains the point.
        pointPos: Enum denoting which point on the geometry is meant:
            1: the start of a line or bounded curve.
            2: the end of a line or bounded curve.
            3: the center of a circle or ellipse.
        </UserDocu>
      </Documentation>
    </Methode>
    <Methode Name="setDatum">
      <Documentation>
        <UserDocu>
Set the value of a datum constraint (e.g. Distance or Angle)

setDatum(constraint, value)

    Args:
        constraint (int or str): The index or name of the constraint to set.
        value (float or Quantity): The value to set for the constraint. When
            using floats, values for linear dimensions are interpreted as
            millimeter, angular ones as radians.
        </UserDocu>
      </Documentation>
    </Methode>
    <Methode Name="getDatum" Const="true">
      <Documentation>
        <UserDocu>
Get the value of a datum constraint (e.g. Distance or Angle)

getDatum(constraint) -> Quantity

    Args:
        constraint (int or str): The index or name of the constraint to query.

    Returns:
        The value of the constraint.
        </UserDocu>
      </Documentation>
    </Methode>
    <Methode Name="setDriving">
      <Documentation>
        <UserDocu>
Set the Driving status of a datum constraint.

setDriving(constraintIndex:int, state:bool)

    Args:
        constraintIndex: The zero-based index of the constraint to configure.
        state: `True` sets the constraint to driving,
            `False` configures it as non-driving, i.e. reference.
        </UserDocu>
      </Documentation>
    </Methode>
    <Methode Name="setDatumsDriving">
      <Documentation>
        <UserDocu>
Set the Driving status of all datum constraints.

setDatumsDriving(state:bool)

    Args:
        state: `True` set all datum constraints to driving,
            `False` configures them as non-driving, i.e. reference.
        </UserDocu>
      </Documentation>
    </Methode>
    <Methode Name="moveDatumsToEnd">
      <Documentation>
        <UserDocu>
Moves all datum constraints to the end of the constraint list.

moveDatumsToEnd()

    Warning: This method reorders the constraint indices. Previously hold
        numeric references to constraints may reference different constraints
        after this operation.
        </UserDocu>
      </Documentation>
    </Methode>
    <Methode Name="getDriving" Const="true">
      <Documentation>
        <UserDocu>
Get the Driving status of a datum constraint.

getDriving(constraintIndex:int)

    Args:
        constraintIndex: The zero-based index of the constraint to query.

    Returns:
        `True` if the constraint is driving,
        `False` if it is non-driving, i.e. reference.
        </UserDocu>
      </Documentation>
    </Methode>
    <Methode Name="toggleDriving">
      <Documentation>
        <UserDocu>
Toggle the Driving status of a datum constraint.

toggleDriving(constraintIndex:int)

    Args:
        constraintIndex: The zero-based index of the constraint to toggle.
        </UserDocu>
      </Documentation>
    </Methode>
    <Methode Name="setVirtualSpace">
        <Documentation>
            <UserDocu>set the VirtualSpace status of a constraint</UserDocu>
        </Documentation>
    </Methode>
    <Methode Name="getVirtualSpace">
        <Documentation>
            <UserDocu>Get the VirtualSpace status of a constraint</UserDocu>
        </Documentation>
    </Methode>
    <Methode Name="toggleVirtualSpace">
        <Documentation>
            <UserDocu>toggle the VirtualSpace status of a constraint</UserDocu>
        </Documentation>
    </Methode>
    <Methode Name="setActive">
        <Documentation>
            <UserDocu>
Activates or deactivates a constraint (enforce it or not).

setActive(constraintIndex:int, state:bool)

    Args:
        constraintIndex: The zero-based index of the constraint to configure.
        state: `True` sets the constraint to active i.e. enforced,
            `False` configures it as inactive, i.e. not enforced.
            </UserDocu>
        </Documentation>
    </Methode>
    <Methode Name="getActive" Const="true">
        <Documentation>
            <UserDocu>
Get whether a constraint is active, i.e. enforced, or not.

getActive(constraintIndex:int)

    Args:
        constraintIndex: The zero-based index of the constraint to query.

    Returns:
        `True` if the constraint is active, i.e. enforced,
        `False` if it is inactive, i.e. not enforced.
            </UserDocu>
        </Documentation>
    </Methode>
    <Methode Name="toggleActive">
        <Documentation>
            <UserDocu>
Toggle the constraint between active (enforced) and inactive.

toggleActive(constraintIndex:int)

    Args:
        constraintIndex: The zero-based index of the constraint to toggle.
            </UserDocu>
        </Documentation>
    </Methode>
    <Methode Name="getLabelPosition" Const="true">
        <Documentation>
            <UserDocu>
Get label position of the constraint.

getLabelPosition(constraintIndex:int)

    Args:
        constraintIndex: The zero-based index of the constraint to query.

    Returns:
        float with the current value.
            </UserDocu>
        </Documentation>
    </Methode>
    <Methode Name="setLabelPosition">
        <Documentation>
            <UserDocu>
Set label position of the constraint.

setLabelPosition(constraintIndex:int, value:float)

    Args:
        constraintIndex: The zero-based index of the constraint to query.
        value: Value of the label position.
            </UserDocu>
        </Documentation>
    </Methode>
    <Methode Name="getLabelDistance" Const="true">
        <Documentation>
            <UserDocu>
Get label distance of the constraint.

getLabelDistance(constraintIndex:int)

    Args:
        constraintIndex: The zero-based index of the constraint to query.

    Returns:
        float with the current value.
            </UserDocu>
        </Documentation>
    </Methode>
    <Methode Name="setLabelDistance">
        <Documentation>
            <UserDocu>
Set label distance of the constraint.

setLabelDistance(constraintIndex:int, value:float)

    Args:
        constraintIndex: The zero-based index of the constraint to query.
        value: Value of the label position.
            </UserDocu>
        </Documentation>
    </Methode>
    <Methode Name="movePoint">
      <Documentation>
        <UserDocu>
          movePoint(GeoIndex,PointPos,Vector,[relative]) - move a given point (or curve)
          to another location.
          It moves the specified point (or curve) to the given location by adding some
          temporary weak constraints and solve the sketch.
          This method is mostly used to allow the user to drag some portions of the sketch
          in real time by e.g. the mouse and it works only for underconstrained portions of
          the sketch.
          The argument 'relative', if present, states if the new location is given
          relatively to the current one.
        </UserDocu>
      </Documentation>
    </Methode>
    <Methode Name="getPoint" Const="true">
      <Documentation>
        <UserDocu>
          getPoint(GeoIndex,PointPos) - retrieve the vector of a point in the sketch
        </UserDocu>
      </Documentation>
    </Methode>
    <Methode Name="getGeoVertexIndex" Const="true">
      <Documentation>
        <UserDocu>
          (geoId, posId) = getGeoVertexIndex(index) - retrieve the GeoId and PosId of a point in the sketch
        </UserDocu>
      </Documentation>
    </Methode>
    <Methode Name="getAxis" Const="true">
      <Documentation>
        <UserDocu>
          return an axis based on the corresponding construction line
        </UserDocu>
      </Documentation>
    </Methode>
    <Methode Name="fillet">
      <Documentation>
        <UserDocu>create fillet between two edges or at a point</UserDocu>
      </Documentation>
    </Methode>
    <Methode Name="trim">
      <Documentation>
        <UserDocu>trim a curve with a given id at a given reference point</UserDocu>
      </Documentation>
    </Methode>
    <Methode Name="extend">
      <Documentation>
        <UserDocu>extend a curve to new start and end positions</UserDocu>
      </Documentation>
    </Methode>
    <Methode Name="split">
      <Documentation>
        <UserDocu>split a curve with a given id at a given reference point</UserDocu>
      </Documentation>
    </Methode>
    <Methode Name="join">
      <Documentation>
        <UserDocu>join two curves at the given end points</UserDocu>
      </Documentation>
    </Methode>
    <Methode Name="addSymmetric">
      <Documentation>
        <UserDocu>add a symmetric geometric objects to the sketch with respect to a reference point or line</UserDocu>
      </Documentation>
    </Methode>
    <Methode Name="addCopy">
      <Documentation>
        <UserDocu>add a copy of geometric objects to the sketch displaced by a vector3d</UserDocu>
      </Documentation>
    </Methode>
    <Methode Name="addMove">
        <Documentation>
            <UserDocu>Moves the geometric objects in the sketch displaced by a vector3d</UserDocu>
        </Documentation>
    </Methode>
    <Methode Name="addRectangularArray">
      <Documentation>
        <UserDocu>add an array of size cols by rows where each element is a copy of the selected geometric objects displaced by a vector3d in the cols direction and by a vector perpendicular to it in the rows direction</UserDocu>
      </Documentation>
    </Methode>
    <Methode Name="removeAxesAlignment">
      <Documentation>
        <UserDocu>modifies constraints so that the shape is not forced to be aligned with axes.</UserDocu>
      </Documentation>
    </Methode>
    <Methode Name="ExposeInternalGeometry">
      <Documentation>
        <UserDocu>Deprecated -- use exposeInternalGeometry</UserDocu>
      </Documentation>
    </Methode>
    <Methode Name="DeleteUnusedInternalGeometry">
      <Documentation>
        <UserDocu>Deprecated -- use deleteUnusedInternalGeometry</UserDocu>
      </Documentation>
    </Methode>
    <Methode Name="exposeInternalGeometry">
      <Documentation>
        <UserDocu>Exposes all internal geometry of an object supporting internal geometry</UserDocu>
      </Documentation>
    </Methode>
    <Methode Name="deleteUnusedInternalGeometry">
      <Documentation>
        <UserDocu>Deletes all unused (not further constrained) internal geometry</UserDocu>
      </Documentation>
    </Methode>
    <Methode Name="convertToNURBS">
        <Documentation>
            <UserDocu>Approximates the given geometry with a B-Spline</UserDocu>
        </Documentation>
    </Methode>
    <Methode Name="increaseBSplineDegree">
        <Documentation>
            <UserDocu>Increases the given BSpline Degree by a number of degrees</UserDocu>
        </Documentation>
    </Methode>
    <Methode Name="decreaseBSplineDegree">
        <Documentation>
            <UserDocu>Decreases the given BSpline Degree by a number of degrees by approximating this curve</UserDocu>
        </Documentation>
    </Methode>
    <Methode Name="modifyBSplineKnotMultiplicity">
        <Documentation>
            <UserDocu>Increases or reduces the given BSpline knot multiplicity</UserDocu>
        </Documentation>
    </Methode>
    <Methode Name="insertBSplineKnot">
        <Documentation>
            <UserDocu>Inserts a knot into the BSpline at the given param with given multiplicity. If the knot already exists, this increases the knot multiplicity by the given multiplicity.</UserDocu>
        </Documentation>
    </Methode>
    <Methode Name="calculateAngleViaPoint">
      <Documentation>
        <UserDocu>
          calculateAngleViaPoint(GeoId1, GeoId2, px, py) - calculates angle between
          curves identified by GeoId1 and GeoId2 at point (x,y). The point must be
          on intersection of the curves, otherwise the result may be useless (except
          line-to-line, where (0,0) is OK). Returned value is in radians.
        </UserDocu>
      </Documentation>
    </Methode>
    <Methode Name="isPointOnCurve">
      <Documentation>
        <UserDocu>
          isPointOnObject(GeoIdCurve, float x, float y) - tests if the point (x,y)
          geometrically lies on a curve (e.g. ellipse). It treats lines as infinite,
          arcs as full circles/ellipses/etc. Returns boolean value.
        </UserDocu>
      </Documentation>
    </Methode>
    <Methode Name="calculateConstraintError">
      <Documentation>
        <UserDocu>
          calculateConstraintError(index) - calculates the error function of the
          constraint identified by its index and returns the signed error value.
          The error value roughly corresponds to by how much the constraint is
          violated. If the constraint internally has more than one error function,
          the returned value is RMS of all errors (sign is lost in this case).
        </UserDocu>
      </Documentation>
    </Methode>
    <Methode Name="changeConstraintsLocking">
      <Documentation>
        <UserDocu>
          changeConstraintsLocking(bLock) - locks or unlocks all tangent and
          perpendicular constraints. (Constraint locking prevents it from
          flipping to another valid configuration, when e.g. external geometry
          is updated from outside.) The sketch solve is not triggered by the
          function, but the SketchObject is touched (a recompute will be
          necessary). The geometry should not be affected by the function.

          The bLock argument specifies, what to do. If true, all constraints
          are unlocked and locked again. If false, all tangent and perp.
          constraints are unlocked.
        </UserDocu>
      </Documentation>
    </Methode>
    <Methode Name="getGeometryWithDependentParameters">
        <Documentation>
            <UserDocu>
                getGeometryWithDependentParameters - returns a list of geoid posid pairs
                with all the geometry element edges and vertices which the solver regards
                as being dependent on other parameters.
            </UserDocu>
        </Documentation>
    </Methode>
    <Methode Name="autoconstraint">
        <Documentation>
            <UserDocu>
                Automatic sketch constraining algorithm.
            </UserDocu>
        </Documentation>
    </Methode>
    <Methode Name="detectMissingPointOnPointConstraints">
        <Documentation>
            <UserDocu>
                Detects Missing Point On Point Constraints. The Detect step just identifies possible missing constraints.
                The result may be retrieved or applied using the corresponding Get / Make methods.
            </UserDocu>
        </Documentation>
    </Methode>
    <Methode Name="analyseMissingPointOnPointCoincident">
        <Documentation>
            <UserDocu>
                Analyses the already detected Missing Point On Point Constraints to detect endpoint tagency/perpendicular.
                The result may be retrieved or applied using the corresponding Get / Make methods.
            </UserDocu>
        </Documentation>
    </Methode>
    <Methode Name="detectMissingVerticalHorizontalConstraints">
        <Documentation>
            <UserDocu>
                Detects Missing Horizontal/Vertical Constraints. The Detect step just identifies possible missing constraints.
                The result may be retrieved or applied using the corresponding Get / Make methods.
            </UserDocu>
        </Documentation>
    </Methode>
    <Methode Name="detectMissingEqualityConstraints">
        <Documentation>
            <UserDocu>
                Detects Missing Equality Constraints. The Detect step just identifies possible missing constraints.
                The result may be retrieved or applied using the corresponding Get / Make methods.
            </UserDocu>
        </Documentation>
    </Methode>
    <Methode Name="makeMissingPointOnPointCoincident">
        <Documentation>
            <UserDocu>
                Applies the detected / set Point On Point coincident constraints. If the argument is True, then solving and redundant removal is done after each individual addition.
            </UserDocu>
        </Documentation>
    </Methode>
    <Methode Name="makeMissingVerticalHorizontal">
        <Documentation>
            <UserDocu>
                Applies the detected / set Vertical/Horizontal constraints. If the argument is True, then solving and redundant removal is done after each individual addition.
            </UserDocu>
        </Documentation>
    </Methode>
    <Methode Name="makeMissingEquality">
        <Documentation>
            <UserDocu>
                Applies the detected / set Equality constraints. If the argument is True, then solving and redundant removal is done after each individual addition.
            </UserDocu>
        </Documentation>
    </Methode>
    <Methode Name="autoRemoveRedundants">
        <Documentation>
            <UserDocu>
                Removes constraints currently detected as redundant by the solver. If the argument is True, then the geometry is updated after solving.
            </UserDocu>
        </Documentation>
    </Methode>
    <Methode Name="toPythonCommands">
        <Documentation>
            <UserDocu>
                Prints the commands that should be executed to recreate the Geometry and Constraints of the present sketch (excluding any External Geometry).
            </UserDocu>
        </Documentation>
    </Methode>
    <Attribute Name="MissingPointOnPointConstraints" ReadOnly="false">
        <Documentation>
            <UserDocu>
                returns a list of (First FirstPos Second SecondPos Type) tuples with all the detected endpoint constraints.
            </UserDocu>
        </Documentation>
        <Parameter Name="MissingPointOnPointConstraints" Type="List"/>
    </Attribute>
    <Attribute Name="MissingVerticalHorizontalConstraints" ReadOnly="false">
        <Documentation>
            <UserDocu>
                returns a list of (First FirstPos Second SecondPos Type) tuples with all the detected vertical/horizontal constraints.
            </UserDocu>
        </Documentation>
        <Parameter Name="MissingVerticalHorizontalConstraints" Type="List"/>
    </Attribute>
    <Attribute Name="MissingLineEqualityConstraints" ReadOnly="false">
        <Documentation>
            <UserDocu>
                returns a list of (First FirstPos Second SecondPos) tuples with all the detected line segment equality constraints.
            </UserDocu>
        </Documentation>
        <Parameter Name="MissingLineEqualityConstraints" Type="List"/>
    </Attribute>
    <Attribute Name="MissingRadiusConstraints" ReadOnly="false">
        <Documentation>
            <UserDocu>
                returns a list of (First FirstPos Second SecondPos) tuples with all the detected radius constraints.
            </UserDocu>
        </Documentation>
        <Parameter Name="MissingRadiusConstraints" Type="List"/>
    </Attribute>
    <Attribute Name="OpenVertices" ReadOnly="true">
        <Documentation>
            <UserDocu>
                returns a list of vertices positions.
            </UserDocu>
        </Documentation>
        <Parameter Name="OpenVertices" Type="List"/>
    </Attribute>
    <Attribute Name="ConstraintCount" ReadOnly="true">
      <Documentation>
        <UserDocu>Number of Constraints in this sketch</UserDocu>
      </Documentation>
      <Parameter Name="ConstraintCount" Type="Long"/>
    </Attribute>
    <Attribute Name="GeometryCount" ReadOnly="true">
      <Documentation>
        <UserDocu>Number of geometric objects in this sketch</UserDocu>
      </Documentation>
      <Parameter Name="GeometryCount" Type="Long"/>
    </Attribute>
    <Attribute Name="AxisCount" ReadOnly="true">
      <Documentation>
        <UserDocu>
          Return the number of construction lines in the sketch which can be used as axes
        </UserDocu>
      </Documentation>
      <Parameter Name="AxisCount" Type="Long"/>
    </Attribute>
    <Attribute Name="GeometryFacadeList" ReadOnly="false">
      <Documentation>
        <UserDocu>
          Return a list of GeometryFacade objects corresponding to the PropertyGeometryList
        </UserDocu>
      </Documentation>
      <Parameter Name="GeometryFacadeList" Type="List"/>
    </Attribute>
    <Attribute Name="DoF" ReadOnly="true">
      <Documentation>
        <UserDocu>
          Return the DoFs of the current solved sketch
        </UserDocu>
      </Documentation>
      <Parameter Name="DoF" Type="Long"/>
    </Attribute>
    <Attribute Name="ConflictingConstraints" ReadOnly="true">
      <Documentation>
        <UserDocu>
          Return a list of integers indicating the constraints detected as conflicting
        </UserDocu>
      </Documentation>
      <Parameter Name="ConflictingConstraints" Type="List"/>
    </Attribute>
    <Attribute Name="RedundantConstraints" ReadOnly="true">
      <Documentation>
        <UserDocu>
          Return a list of integers indicating the constraints detected as redundant
        </UserDocu>
      </Documentation>
      <Parameter Name="RedundantConstraints" Type="List"/>
    </Attribute>
    <Attribute Name="PartiallyRedundantConstraints" ReadOnly="true">
      <Documentation>
        <UserDocu>
          Return a list of integers indicating the constraints detected as partially redundant
        </UserDocu>
      </Documentation>
      <Parameter Name="PartiallyRedundantConstraints" Type="List"/>
    </Attribute>
    <Attribute Name="MalformedConstraints" ReadOnly="true">
      <Documentation>
        <UserDocu>
          Return a list of integers indicating the constraints detected as malformed
        </UserDocu>
      </Documentation>
      <Parameter Name="MalformedConstraints" Type="List"/>
    </Attribute>
    <Methode Name="setGeometryId">
      <Documentation>
        <UserDocu>sets the GeometryId of the SketchGeometryExtension of the geometry with the provided GeoId</UserDocu>
      </Documentation>
    </Methode>
    <Methode Name="getGeometryId">
      <Documentation>
        <UserDocu>gets the GeometryId of the SketchGeometryExtension of the geometry with the provided GeoId</UserDocu>
      </Documentation>
    </Methode>
  </PythonExport>
</GenerateModel>
